#include <boost/asio.hpp>
#include <iostream>
#include <thread>



void worker(boost::asio::io_context& io_context, int id) {
    io_context.run();
    std::cout << "Thread " << id << " finished." << std::endl;
}

int main() {
    boost::asio::io_context io_context;

    // 提交任务
    for (int i = 0; i < 10; ++i) {
        io_context.post([i]() {
            std::cout << "Task " << i << " is running" << std::endl;
        });
    }

    // 创建线程池
    std::vector<std::thread> threads;
    for (int i = 0; i < 4; ++i) {
        threads.emplace_back(worker, std::ref(io_context), i);
    }

    // 等待所有线程完成
    for (auto& t : threads) {
        t.join();
    }

    return 0;
}





// int main()
// {
//     boost::asio::io_context io_context;

//     io_context.post([](){
//         std::cout<<"Hello,Boost.Asio"<<std::endl;
//     });

//     io_context.post([]() {
//         std::cout << "Task 1" << std::endl;
//     });

//     io_context.post([]() {
//         std::cout << "Task 2" << std::endl;
//     });

//     io_context.post([]() {
//         std::cout << "Task 3" << std::endl;
//     });

//     io_context.run();

//     return 0;
// }